package com.ssy.lingxi.pay.model.vo.request;

import com.ssy.lingxi.pay.model.bo.PayProveBO;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.PositiveOrZero;
import java.io.Serializable;
import java.util.List;

/**
 * 授信还款VO
 * @author 伍将
 * @date 2020/8/24
 * @version 2.0.0
 */
public class CreditRepayVO implements Serializable {
    private static final long serialVersionUID = -6632721628917506604L;

    /**
     * 账单id
     */
    @NotNull(message = "账单id要大于等于0")
    @PositiveOrZero(message = "账单id要大于等于0")
    private Long billId;

    /**
     * 交易类型： 1-线上，2-线下
     */
    @NotNull(message = "交易类型要大于0")
    @Positive(message = "交易类型要大于等于0")
    private Integer tradeType;

    /**
     * 交易渠道： 1-支付宝，2-微信，3-银联，4-余额，99-线下
     */
    private Integer tradeChannel = 99;

    /**
     * 还款额度
     */
    @NotNull(message = "还款额度要大于等于0")
    @PositiveOrZero(message = "还款额度要大于等于0")
    private Double repayQuota;

    /**
     * 支付密码（加密后密文）
     */
    private String passWord;

    /**
     * 支付凭证
     */
    @Valid
    private List<PayProveBO> payProveList;

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public Integer getTradeType() {
        return tradeType;
    }

    public void setTradeType(Integer tradeType) {
        this.tradeType = tradeType;
    }

    public Integer getTradeChannel() {
        return tradeChannel;
    }

    public void setTradeChannel(Integer tradeChannel) {
        this.tradeChannel = tradeChannel;
    }

    public Long getBillId() {
        return billId;
    }

    public void setBillId(Long billId) {
        this.billId = billId;
    }

    public Double getRepayQuota() {
        return repayQuota;
    }

    public void setRepayQuota(Double repayQuota) {
        this.repayQuota = repayQuota;
    }

    public List<PayProveBO> getPayProveList() {
        return payProveList;
    }

    public void setPayProveList(List<PayProveBO> payProveList) {
        this.payProveList = payProveList;
    }
}
